package view;

import java.awt.EventQueue;

import javax.persistence.EntityManager;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.border.LineBorder;

import java.awt.Color;

import javax.swing.JButton;
import javax.swing.table.DefaultTableModel;

import model.Cidade;
import negocios.RnCidades;
import connection.EMFLocal;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class JCidade extends JDialog {
	private JTextField txtCodigo;
	private JTextField txtNome;
	private JTable tabela;
	private JTextField txtBusca;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					JCidade dialog = new JCidade(null, true);
					dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
					dialog.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the dialog.
	 */
	public JCidade(JDialog pai, boolean modal) {
		super(pai, modal);

		setTitle("Controle de Cidades");
		setBounds(100, 100, 585, 463);
		getContentPane().setLayout(null);

		JLabel lblCdigo = new JLabel("Código:");
		lblCdigo.setBounds(30, 24, 70, 15);
		getContentPane().add(lblCdigo);

		txtCodigo = new JTextField();
		txtCodigo.setEnabled(false);
		txtCodigo.setBounds(105, 22, 114, 19);
		getContentPane().add(txtCodigo);
		txtCodigo.setColumns(10);

		JLabel lblNome = new JLabel("Nome:");
		lblNome.setBounds(30, 62, 55, 15);
		getContentPane().add(lblNome);

		txtNome = new JTextField();
		txtNome.setBounds(93, 60, 320, 19);
		getContentPane().add(txtNome);
		txtNome.setColumns(10);

		JPanel panel = new JPanel();
		panel.setBorder(new LineBorder(Color.GRAY, 1, true));
		panel.setBounds(422, 29, 141, 223);
		getContentPane().add(panel);
		panel.setLayout(null);

		JButton btnAdicionar = new JButton("Adicionar");
		btnAdicionar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				try {
					EntityManager em = EMFLocal.getEntityManager();
					RnCidades rnCidade = new RnCidades();
					Cidade cidade = new Cidade();

					// captura

					String nome = txtNome.getText();

					cidade.setNome(nome);

					// persistência

					em.getTransaction().begin();
					rnCidade.inserir(cidade);
					em.getTransaction().commit();
					EMFLocal.limparEntityManager();
					JOptionPane.showMessageDialog(null, "Cidade Cadastrada");

				} catch (Exception e) {
					JOptionPane.showMessageDialog(null, "Erro ao Cadastrar");
				}

			}
		});
		btnAdicionar.setBounds(12, 23, 117, 25);
		panel.add(btnAdicionar);

		JButton btnAlterar = new JButton("Alterar");
		btnAlterar.setBounds(12, 74, 117, 25);
		panel.add(btnAlterar);

		JButton btnExcluir = new JButton("Excluir");
		btnExcluir.setBounds(12, 125, 117, 25);
		panel.add(btnExcluir);

		JButton btnSelecionar = new JButton("Selecionar");
		btnSelecionar.setBounds(12, 173, 117, 25);
		panel.add(btnSelecionar);

		tabela = new JTable();
		tabela.setModel(new DefaultTableModel(new Object[][] {}, new String[] {
				"C\u00F3digo", "nome" }));
		tabela.getColumnModel().getColumn(0).setPreferredWidth(45);
		tabela.getColumnModel().getColumn(1).setPreferredWidth(275);
		tabela.setBounds(30, 154, 383, 260);
		getContentPane().add(tabela);

		JLabel lblBuscar = new JLabel("Buscar:");
		lblBuscar.setBounds(30, 127, 70, 15);
		getContentPane().add(lblBuscar);

		txtBusca = new JTextField();
		txtBusca.setBounds(105, 125, 308, 19);
		getContentPane().add(txtBusca);
		txtBusca.setColumns(10);

		JButton btnFechar = new JButton("Fechar");
		btnFechar.setBounds(435, 389, 117, 25);
		getContentPane().add(btnFechar);

	}
}
